package com.dragon.utilslibrary.share;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * 缓存配置类
 * 此类不公开，需要的业务请继承
 */
public class SharedPreferencesUtils {

    private static final String TAG = "SharedPreferencesUtils";

    /**
     * 游客身份，或者免登录身份，或者公共的数据
     */
    public static String TMEP_USERID = "tempUserId";

    /**
     * 需登录，存int数据
     */
    public static void setSharedIntData(Context context, String userId, String key, int value) {
        context.getSharedPreferences(userId, Context.MODE_PRIVATE).edit().putInt(key, value).apply();
    }

    /**
     * 免登录，存int数据
     */
    public static void setSharedIntData(Context context, String key, int value) {
        setSharedIntData(context, TMEP_USERID, key, value);
    }

    /**
     * 需登录，取int数据
     */
    public static int getSharedIntData(Context context, String userId, String key) {
        return context.getSharedPreferences(userId, Context.MODE_PRIVATE).getInt(key, 0);
    }

    /**
     * 免登录，取int数据
     */
    public static int getSharedIntData(Context context, String key) {
        return getSharedIntData(context, TMEP_USERID, key);
    }

    /**
     * 需登录，存long数据
     */
    public static void setSharedLongData(Context context, String userId, String key, long value) {
        context.getSharedPreferences(userId, Context.MODE_PRIVATE).edit().putLong(key, value).apply();
    }

    /**
     * 免登录，存long数据
     */
    public static void setSharedLongData(Context context, String key, long value) {
        setSharedLongData(context, TMEP_USERID, key, value);
    }

    /**
     * 需登录，取long数据
     */
    public static long getSharedLongData(Context context, String userId, String key) {
        return context.getSharedPreferences(userId, Context.MODE_PRIVATE).getLong(key, 0l);
    }

    /**
     * 免登录，取long数据
     */
    public static long getSharedLongData(Context context, String key) {
        return getSharedLongData(context, TMEP_USERID, key);
    }

    /**
     * 需登录，存Float数据
     */
    public static void setSharedFloatData(Context context, String userId, String key, float value) {
        context.getSharedPreferences(userId, Context.MODE_PRIVATE).edit().putFloat(key, value).apply();
    }

    /**
     * 免登录，存Float数据
     */
    public static void setSharedFloatData(Context context, String key, float value) {
        setSharedFloatData(context, TMEP_USERID, key, value);
    }

    /**
     * 需登录，取Float数据
     */
    public static Float getSharedFloatData(Context context, String userId, String key) {
        return context.getSharedPreferences(userId, Context.MODE_PRIVATE).getFloat(key, 0f);
    }

    /**
     * 免登录，取Float数据
     */
    public static Float getSharedFloatData(Context context, String key) {
        return getSharedFloatData(context, TMEP_USERID, key);
    }

    /**
     * 需登录，存Boolean数据
     */
    public static void setSharedBooleanData(Context context, String userId, String key, boolean value) {
        context.getSharedPreferences(userId, Context.MODE_PRIVATE).edit().putBoolean(key, value).apply();
    }

    /**
     * 免登录，存Boolean数据
     */
    public static void setSharedBooleanData(Context context, String key, boolean value) {
        setSharedBooleanData(context, TMEP_USERID, key, value);
    }

    /**
     * 需登录，取Boolean数据
     */
    public static Boolean getSharedBooleanData(Context context, String userId, String key) {
        return context.getSharedPreferences(userId, Context.MODE_PRIVATE).getBoolean(key, false);
    }

    /**
     * 免登录，取Boolean数据
     */
    public static Boolean getSharedBooleanData(Context context, String key) {
        return getSharedBooleanData(context, TMEP_USERID, key);
    }

    /**
     * 免登录，取Boolean数据 返回默认true
     */
    public static Boolean getSharedBooleanTrue(Context context, String userId, String key) {
        return context.getSharedPreferences(userId, Context.MODE_PRIVATE).getBoolean(key, true);
    }

    public static Boolean getSharedBooleanTrue(Context context, String key) {
        return getSharedBooleanTrue(context, TMEP_USERID, key);
    }

    /**
     * 需登录，存String数据
     */
    public static void setSharedStringData(Context context, String userId, String key, String value) {
        context.getSharedPreferences(userId, Context.MODE_PRIVATE).edit().putString(key, value).apply();
    }

    /**
     * 免登录，存string数据
     */
    public static void setSharedStringData(Context context, String key, String value) {
        setSharedStringData(context, TMEP_USERID, key, value);
    }

    /**
     * 需登录，取String数据
     */
    public static String getSharedStringData(Context context, String userId, String key) {
        return context.getSharedPreferences(userId, Context.MODE_PRIVATE).getString(key, null);
    }

    /**
     * 免登录，取string数据
     */
    public static String getSharedStringData(Context context, String key) {
        return getSharedStringData(context, TMEP_USERID, key);
    }

    /**
     * 清空免登录数据
     */
    public static void clearDataTmp(Context context) {
        SharedPreferences uSp = context.getSharedPreferences(TMEP_USERID, Context.MODE_PRIVATE);
        uSp.edit().clear().apply();// 清空用户 数据
    }

    /**
     * 清空登录用户的数据
     *
     * @param context
     */
    public static void clearDataTmp(Context context, String userId) {
        SharedPreferences uSp = context.getSharedPreferences(userId, Context.MODE_PRIVATE);
        uSp.edit().clear().apply();// 清空用户 数据
    }

}
